Advances in microprocessor technology have led to the design of new high speed microprocessors. Many of these high speed microprocessors consume significantly higher power when operating at peak performance levels. Some of these microprocessors have an average peak power consumption of as high as 8 W. While an increase in power consumption may not be a problem for desktop computer systems, it is a problem for portable systems which operate on power supplies with a limited amount of battery life.
Another problem arising from performance levels at high frequencies is increased heat dissipation. Many of these next generation microprocessors contain a significantly higher number of transistors which are driven at much higher speeds. Collectively, these transistors dissipate an increased amount of heat. Excessive heat generated by microprocessors can raise the operating temperature of the microprocessor above the recommended threshold temperature if the heat is not properly dissipated. Overheated processors can malfunction and generate incorrect results or even burn out. It is important, therefore, to manage the power consumption of these new microprocessors and to limit the amount of heat dissipated.
In the past, several approaches had been taken to deal with the problems of heat dissipation and power consumption. One approach was the implementation of temperature sensors on or near the microprocessor. These sensors triggered when the microprocessor temperature exceeded its recommended safe operating range. The system reacted to this trigger by slowing down the microprocessor. After the microprocessors had time to cool, it was allowed to return to its normal operating speed. Although this approach prevented the microprocessor from overheating, it did not provide an effective solution to the problem of excessive power consumption without affecting application performance. Rather, this solution ran the microprocessor at full speed until it approached a critical temperature range, allowing it to consume a tremendous amount of energy. Perhaps a more serious problem with this approach was the fact that a user experienced a degradation of performance when the microprocessor slowed down. When the threshold temperature is reached, all applications run by the microprocessor are automatically slowed. Standard applications run by the microprocessor experienced performance degradation. Applications with real time constraints could malfunction.
Another approach taken in the prior art to reduce power consumption and heat dissipation was the use of activity monitoring devices. Generally, activity monitoring devices monitored specific address access on an address bus. Access on that address occur when there is activity between the microprocessor and specific I/O devices. Thus, an activity monitoring device could monitor accesses between the microprocessor and the disk drive, mouse, hard drive, monitor or modem, and time the period of inactivity. When there is no access for a period of time that device may get turned off or switched to a lower power consumption mode. When the operating system realizes that multiple devices are inactive the processor is slowed down. Activity monitoring devices were effective for conserving power and reducing heat dissipation in systems during periods of inactivity. However, the approach did not offer a solution to excessive power consumption and heat dissipation when a system is continually in use. Thus, in normal operating modes of the computer, the microprocessor would continue to consume the same amount of power and dissipate the same amount of heat as if the activity monitoring device were not present.
Still another approach was the use of a manually activated external clock divider which allowed the user to decrease the speed of the microprocessor using a switch. Although this feature gave the user the ability to throttle the clock of the microprocessor and decrease the power consumption and heat dissipation of the system at any chosen time, this solution required that all applications run by the microprocessor be slowed down. The user could not discriminate between applications which were CPU intensive and applications that were not CPU intensive. All processes were run either at high speed or low speed. Thus, if a user was running multiple applications, one of which being a CPU intensive application which required the microprocessor to be run at high speed, the user could not use this solution. Throttling the clock of-the microprocessor would degrade the performance of the microprocessor for the application requiring the microprocessor to run at full power.
Thus, a method of operating a microprocessor which reduces both power consumption and heat dissipation without effecting the perceived performance of the microprocessor to the user is desired. The present invention overcomes the drawbacks of the prior art by providing an apparatus and method for operating the microprocessor at a level appropriate for each application.